package interfejsKlient;

import java.util.ArrayList;
import java.util.Date;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import transport.ManagerPolaczen;
import transport.Polaczenie;

public class ServicePobierzPolaczenia extends Service<ObservableList<interfejsKlient.Polaczenie>>{

	ObservableList<PolaczenieItem> dane = FXCollections.observableArrayList();
	ArrayList<Polaczenie> list;
	PolaczenieItem polocz;
	
	public int dzien;
	public int miesiac;
	public int rok;
	
	public void setDate(int dz, int mie, int r){
		dzien = dz;
		miesiac = mie;
		rok = r;
	}
	@Override
	protected Task createTask() {
		return new Task<ObservableList<PolaczenieItem>>(){

			@Override
			protected ObservableList<PolaczenieItem> call() {
				
				
				
				dane = FXCollections.observableArrayList();
				
					//System.out.println("Argumenty: "+rok+", "+miesiac+", "+dzien);
					//list = new ArrayList<Polaczenie>();
				list = ManagerPolaczen.wyswietlPolaczenia("", "", rok ,miesiac, dzien);
					
				//System.out.println(list.get(0).getTrack().get(0));
				if(list.isEmpty()){}
					//System.out.println("Brak polaczen w tym dniu "+dzien+", "+miesiac+", "+rok);
				else{
					for(int i = 0 ; i < list.size(); i++){
						
						
						Polaczenie pol = list.get(i);
						
						
						
						String godzina = Integer.toString(pol.getTime().getHours());
						
						if(godzina.equals("0"))
							godzina = "00";
						if(godzina.length()==1)
							godzina = "0"+godzina;
						String minuta = Integer.toString(pol.getTime().getMinutes());
						
						if(minuta.equals("0") )
							minuta = "00";
						if(minuta.length() == 1)
							minuta = minuta+"0";
						String odjazd = godzina+":"+minuta;
						//System.out.println(odjazd);
						ArrayList<Double> ceny= pol.getPrices();
						
						
						ArrayList<String> trasa = pol.getTrack();
						for(int k = 0; k < trasa.size(); k++){
							//System.out.println(pol.getId());
							PolaczenieItem polaczenie = new PolaczenieItem(list.get(i).getTrack().get(k).trim(), odjazd, ceny.get(k), pol.getId(), dzien, miesiac, rok);
							dane.add(polaczenie);
						}
						//PolaczenieItem polaczenie = new PolaczenieItem(list.get(i).getTrack().get(0), odjazd, price, pol.getId());
						//dane.add(polaczenie);
					}
				}
				
				
				
				return dane;
			}
			
		};//koniec new task
	}//koniec create task

	

}
